// 课程分享图
function canvas_draw(that,info,userinfo,bg,logo,courImg,avatar,ewm,ctx){
  wx.showLoading({title: '生成中'})
  var width = that.data.width, height = that.data.width*1.27,x = width / 375;
  // 开始绘制
  // 背景
  ctx.drawImage(bg,0,0,width,height);
  ctx.save();
  ctx.beginPath();
  // logo
  
  // 课程图片
  roundImg(ctx,courImg,(width-270*x+1)/2,99*x,285*x,207*x,20*x)
  // 课程名
  ctx.setFillStyle("#A25300");
  ctx.font = 'normal bold 18px SemHei';
  drawText(ctx,info.name,335*x,width)
  // 头像
  ctx.arc(65.5*x,405*x,17*x,0,2*Math.PI,!1)
  ctx.clip()
  ctx.drawImage(avatar, 48.5*x, 388*x, 34*x, 34*x)
  ctx.restore()
  ctx.save();
  ctx.beginPath();
  // 昵称
  ctx.setFillStyle("#A25200");
  ctx.font='normal bold 12px SemHei';
  var name=userinfo.nickName;
  if(name.length>12){
    name=name.substring(0,12)
  }
  ctx.fillText(name, 96*x, 412 * x);
  // 小程序码
  ctx.arc(302*x,419.5*x,37*x,0,2*Math.PI,!1)
  ctx.clip()
  ctx.drawImage(ewm, 265*x, 382.5*x, 74*x, 74*x)
  ctx.restore()
  // 标语
  ctx.setFillStyle("#A25200");
  ctx.font='normal bold 10px SemHei';
  ctx.fillText("长按识别小程序，发现更多精彩好课 >>>", 46*x, 446 * x);
  // 
  ctx.draw(true, function () {
    setTimeout(function () {
      wx.canvasToTempFilePath({
        x: 0,
        y: 0,
        width: width,
        height: height,
        canvasId: 'shareCanvas',
        fileType: 'png',
        success: function (res) {
          // console.log(res);
          wx.hideLoading({})
          that.setData({share_img: res.tempFilePath,show_share:false})
        }
      }, that)
    }, 800);
  })
}
// 图片圆角
function roundImg(ctx, img, x, y, w, h, r) {
  //img为绘制图片的本地路径
  if (w < 2 * r) { r = w / 2; }
  if (h < 2 * r) { r = h / 2; }
  ctx.save()  //保存前面绘制的内容
  ctx.beginPath();
  // ctx.arc(x + r, y + r, r, Math.PI, Math.PI * 1.5);
  ctx.moveTo(x, y);
  ctx.lineTo(x + w - r, y);
  ctx.lineTo(x + w, y + r);
  ctx.arc(x + w - r, y + r, r, Math.PI * 1.5, Math.PI * 2);
  ctx.lineTo(x + w, y + h - r);
  ctx.lineTo(x + w - r, y + h);
  ctx.arc(x + w - r, y + h - r, r, 0, Math.PI * 0.5);
  ctx.lineTo(x + r, y + h);
  ctx.lineTo(x, y + h - r);
  ctx.arc(x + r, y + h - r, r, Math.PI * 0.5, Math.PI);
  // ctx.lineTo(x, y + r);
  // ctx.lineTo(x + r, y);
  ctx.clip()
  ctx.drawImage(img,x,y,w,h,r)
  ctx.restore() 
  
  ctx.closePath();
}
// 文本自动换行
function drawText(ctx, str, initHeight, canvasWidth) {
  var lineWidth = 0;
  var lastIndex = 0; //每次开始截取的字符串的索引
  for (let i = 0; i < str.length; i++) {
    lineWidth += ctx.measureText(str[i]).width;
    if (lineWidth >= 200) {
        ctx.fillText(str.substring(lastIndex, i), (canvasWidth-ctx.measureText(str.substring(lastIndex, i)).width)/2, initHeight); //绘制截取部分
        initHeight += 22; 
        lineWidth = 0;
        lastIndex = i;
    }
    if (i == str.length - 1) { //绘制剩余部分
        ctx.fillText(str.substring(lastIndex, i + 1), (canvasWidth-ctx.measureText(str.substring(lastIndex, i+1)).width)/2, initHeight);
    }
  }
}




module.exports={
  canvas_draw
}